Compatible with RealCamera - #556
Conversation
Traben-0
left a comment
There was a problem hiding this comment.
might be more issues i only gave this a review online and didnt test in-game
if you just want me to handle the fixes for you i can do that but I won't be doing that myself anytime soon
| varConsumer.accept(vars, true); | ||
| //Default is TRUE | ||
| boolean shouldUpdateVars = RealCameraCompat.isShouldRenderEntity(); | ||
| varConsumer.accept(vars, shouldUpdateVars); |
There was a problem hiding this comment.
issue: a nicer point to check this would be inside the the isLODSkippingThisFrame() check just a bit above this as it seems like at a glance you want the same thing that accomplishes and i already do similar things in there to pause things during iris's shadow pass, unless i've missed somet technical detail here
There was a problem hiding this comment.
I have a question: if registerPauseCondition is called, is it still necessary to perform modifications here?
Additionally, if we disable rendering logic inside isLODSkippingThisFrame, will this cause entity position desync?
To elaborate: when animation updates are blocked, the head position we retrieve remains its original value. Once rendering resumes from the player’s view, the head will shift due to resource pack adjustments, resulting in clipping through models.
There was a problem hiding this comment.
hmm i might have been misunderstanding what you were trying to accomplish here, as i said i havent tested in-game yet so ignore this for now
There was a problem hiding this comment.
please do push your other changes first btw as i'll want to test with all those addressed
There was a problem hiding this comment.
There are still a few issues. As shown in the screenshot, registerPauseCondition does not seem to apply correctly in version 26.1, while it works fine on 1.21.1

On Fabric, I’m attempting registration inside onInitializeClient(). I also set breakpoints during debugging and confirmed that this block of code runs normally, yet the logic still fails to take effect
There was a problem hiding this comment.
If you want to check the relevant code, please take a look at lines 55 to 63 here
This PR fixes compatibility issues with RealCamera, as shown in the attached screenshot

P.S. The screenshot was captured to reproduce the bug on an older version. No resource pack that triggers the issue has been found in the latest release yet, so the fix cannot be verified for the time being
I inject via Mixin into the computeCamera() and captureRotatedEntity(), adding a static boolean flag to toggle single-frame guard activation
Also, I'm unsure whether I should use @pseudo or shouldApplyMixin here, so I kept both annotations.
I also don't know the standard, more idiomatic way to write multi-version compatible mods, so this is the implementation I came up with.